Modify Compiler Rewrite Assembly Code Modify Linker

نویسندگان

  • James R. Larus
  • Thomas Ball
چکیده

Inserting instrumentation code in a program is an e ective technique for detecting, recording, and measuring many aspects of a program's performance. Instrumentation code can be added at any stage of the compilation process by specially-modi ed system tools such as a compiler or linker or by new tools from a measurement system. For several reasons, adding instrumentation code after the compilation process|by rewriting the executable le|presents fewer complications and leads to more complete measurements. This paper describes the di culties in adding code to executable les that arose in developing the pro ling and tracing tools qp and qpt. The techniques used by these tools to instrument programs on MIPS and SPARC processors are applicable in other instrumentation systems running on many processors and operating systems. In addition, many di culties could have been avoided with minor changes to compilers and executable le formats. These changes would simplify this approach to measuring program performance and make it more generally useful.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Hard-coding Bottom-up Code Generation Tables to Save Time and Space

Code generators based on bottom-up rewrite systems (BURS) are automatically generated from machinedescription grammars. They produce locally optimal code for expression trees, but their tables are large and require compile-time interpretation. This paper describes a program that compiles BURS tables into a combination of hard code and data. Hard-coding exposed important opportunities for compre...

متن کامل

Formal Compiler Implementation in a Logical Framework

The task of designing and implementing a compiler can be a difficult and error-prone process. In this paper, we present a new approach based on the use of higher-order abstract syntax and term rewriting in a logical framework. All program transformations, from parsing to code generation, are cleanly isolated and specified as term rewrites. This has several advantages. The correctness of the com...

متن کامل

Completion of Unraveled Term Rewriting Systems toward Program Inversion of Injective Functions

Given a constructor term rewriting system defining injective functions, the inversion compiler proposed by Nishida, Sakai and Sakabe generates a confluent conditional term rewriting system, and unravels the conditional system into an unconditional term rewriting system. In general, the unconditional system is not confluent and thus not computationally equivalent to the conditional system. In th...

متن کامل

Designing a Solver for Arithmetic Constraints to Support Education in Mathematics

We present a conditional rewrite system for arithmetic and membership univariate constraints over real numbers, designed for computer assisted learning (CAL) in elementary math. Two fundamental principles guided the design of the proposed rewrite rules: cognitive fidelity (emulating steps students should take) and correctness, aiming that step-by-step solutions to problems look like ones carrie...

متن کامل

The New Jersey Machine-Code Toolkit

The New Jersey Machine-Code Toolkit helps programmers write applications that process machine code. Applications that usc the toolkit axe written at an assembly-language level of abstraction, hut they recognize and emit binary. Guided by a short instruction-set specification, the toolkit generates all the bit-manipulating code. The toolkit's specification language uses four clements: fields and...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994